package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.*;

import java.util.List;

/**
 * Created by xu_jiaHui on 2017/8/17.
 */
public interface RoadLineManageService {

    /**
     * @Description: 获取标线用于DT展示
     * @author xu_jiaHui
     * @date 2017/8/17 12:54
     */
    public DTResponseDto getRoadLine4DT(DTRequestDto dtRequestDto,
                                        String actorIds,
                                        Integer orgId,
                                        Boolean audit,
                                        String startRoad,
                                        String endRoad,
                                        String roadName) throws Exception;

    /**
     * @Description: 删除标线
     * @author xu_jiaHui
     * @date 2017/8/17 12:53
     */
    public Integer deleteRoadLine(String solarEnergyIds) throws Exception;

    /**
     * @Description: 审核标线
     * @author xu_jiaHui
     * @date 2017/8/17 12:54
     */
    public Integer auditRoadLine(String solarEnergyIds) throws Exception;


    /**
     * @Description: 获取起始路名
     * @author xu_jiaHui
     * @date 2017/8/17 12:55
     */
    public List<String> getStartRoadByRoadName(String roadName, String actorIds, Integer orgId) throws Exception;

    /**
     * @Description: 获取结束路名
     * @author xu_jiaHui
     * @date 2017/8/17 12:55
     */
    public List<String> getEndRoadByStartRoad(String roadLineRoadName, String startRoad, String actorIds, Integer orgId) throws Exception;


    /**
     * @Description: 添加标线
     * @author xu_jiaHui
     * @date 2017/8/17 19:35
     */
    public Integer addRoadLine(RoadLineDto roadLineDto) throws Exception;

    /**
     * @Description: 更新标线
     * @author xu_jiaHui
     * @date 2017/8/18 14:33
     */
    public Integer updateRoadLine(RoadLineDto roadLineDto) throws Exception;

    /**
     * @Description: 根据标线id获取坐标集type=1
     * @author xu_jiaHui
     * @date 2017/8/18 15:05
     */
    public List<CoordinateDto> getCoordinatesById(Integer roadLineId, Integer type) throws Exception;

    /**
     * @Description: 根据orgId, actorId获取城市4App
     * @author xu_jiaHui
     * @date 2017/10/9 15:37
     */
    public List<String> getCity4RoadLine(String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据City获取路口4App
     * @author xu_jiaHui
     * @date 2017/10/9 15:38
     */
    public List<String> getStartRoadByCity(String city, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 通过起始路段获取截止路APP段
     * @author xu_jiaHui
     * @date 2017/8/14 20:33
     */
    public List<String> getSectionByStartRoad4App(String city, String roadName, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 获取标线信息用于列表展示4App
     * @author Jiang_Zhengyu
     * @date 2017/10/13 17:07
     */
    public List<RoadLineDto> getRoadLine4APP(String actorIds,
                                               Integer orgId,
                                               Integer mCount,
                                               Integer mSize,
                                               String city,
                                               String startRoad,
                                               String endRoad,
                                               String roadName) throws Exception;
    /**
     * @Description: 通过Id获取标线信息
     * @author Jiang_Zhengyu
     * @date 2017/10/13 19:45
     */
    public RoadLineDto getRoadLineById(Integer guardrailId) throws Exception;

    /**
     * @Description: 根据城市获取路名
     * @author Jiang_Zhengyu
     * @date 2017/10/14 22:57
     */
    public List<String> getRoadName4RoadLineByCity(String actorIds, Integer orgId, String city, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据城市 路名 获取起始路名
     * @author Jiang_Zhengyu
     * @date 2017/10/14 22:58
     */
    public List<String> getStartRoadByRoadName4App(String city, String roadName, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据城市路名起始路名获取结束路名
     * @author Jiang_Zhengyu
     * @date 2017/10/14 22:58
     */
    public List<String> getEndRoadByStartRoad4App(String city, String roadName, String startRoad, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: app地图
     * @Author: shao-yikun
     * @Date: 2017/11/23 上午9:36
     */
    public List<RoadLineDto> getRoadLine4Map4App(Integer orgId,
                                                 String actorIds,
                                                 double neLongitude,
                                                 double neLatitude,
                                                 double swLongitude,
                                                 double swLatitude) throws Exception;

}
